package com.yc.services;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yc.DTO.TestAnswerDTO;
import com.yc.bean.*;
import com.yc.web.controller.model.ResponseResult;

import java.util.List;
import java.util.Map;

/**
 * 测评服务接口
 */
public interface TestService {
    
    /**
     * 获取测评分类列表
     */
    ResponseResult getCategories();
    
    /**
     * 获取测评列表
     */
    ResponseResult getTestList(Long userId, String categoryId, String status, Integer page, Integer size);
    
    /**
     * 获取测评详情（包含题目和选项）
     */
    ResponseResult getTestDetail(Long testId, Long userId);
    
    /**
     * 开始测评（创建测评记录）
     */
    ResponseResult startTest(Long testId, Long userId);
    
    /**
     * 保存答题进度
     */
    ResponseResult saveProgress(TestAnswerDTO answerDTO);
    
    /**
     * 提交测评
     */
    ResponseResult submitTest(TestAnswerDTO answerDTO);
    
    /**
     * 获取测评结果
     */
    ResponseResult getTestResult(Long recordId, Long userId);
    
    /**
     * 获取历史测评记录
     */
    ResponseResult getTestHistory(Long userId, Integer page, Integer size);
    
    /**
     * 重新测评
     */
    ResponseResult retakeTest(Long testId, Long userId);
    
    /**
     * 分享测评结果
     */
    ResponseResult shareResult(Long recordId, Long userId);
    
    /**
     * 通过分享token获取测评结果
     */
    ResponseResult getSharedResult(String shareToken);
    
    /**
     * 获取用户测评统计
     */
    ResponseResult getUserTestStats(Long userId);
} 